/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CommandAlterar;

import Cliente.Controller.AlterarClientePresenter;
import Cliente.Entidade.Cliente;
import Cliente.Model.AlteraCliente;
import Cliente.Model.CadastrarPaciente;
import Cliente.Model.ConsultarPaciente;
import Cliente.util.CalculaIAC;
import Cliente.util.CalculaIMC;
import Cliente.util.CalculaRCQ;
import Cliente.util.DesabilitaCampos;
import Cliente.util.SelecionarSexo;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Caio
 */
public class AlterarCommand extends AbstractAlterarCommand {
    
    
    AlterarClientePresenter alterar;
    private DesabilitaCampos dc = new DesabilitaCampos();
    private SelecionarSexo ss = new SelecionarSexo();
    private CalculaRCQ calcularcq;
    private ConsultarPaciente consultarcliente = new ConsultarPaciente();
    
    public AlterarCommand(AlterarClientePresenter receptor){
        super(receptor);
        alterar=receptor;
    }

    @Override
    public void execute() {
        alteraCliente();

    }
    
    private void alteraCliente() {
        if (consultarcliente.consultaCliente(alterar.view.getFtfCPF().getText())) {
            JOptionPane.showMessageDialog(alterar.view, " O cliente já foi cadastrado!", "Erro", JOptionPane.ERROR_MESSAGE);
        } else {
            if (alterar.view.getTxtNome().getText().trim().equals("")) {
                JOptionPane.showMessageDialog(alterar.view, "Informe o nome do Cliente!", "Erro", JOptionPane.ERROR_MESSAGE);
                alterar.view.getTxtNome().requestFocus();
            } else {
                CalculaIAC calculaiac = new CalculaIAC();
                CalculaIMC calculaimc = new CalculaIMC();
                Cliente cliente = new Cliente();
                cliente.setId(alterar.getClientes().get(alterar.view.getTblCliente().getSelectedRow()).getId());
                cliente.setNome(alterar.view.getTxtNome().getText().trim());
                cliente.setCpf(alterar.view.getFtfCPF().getText());
                cliente.setAltura(Double.parseDouble(alterar.view.getTxtAltura().getText().trim()));
                cliente.setSexo(ss.SelecionaSexo(alterar.view.getRadFeminino(),alterar.view.getRadMasculino()));
                cliente.setIdade(Integer.parseInt(alterar.view.getTxtIdade().getText().trim()));
                cliente.setPeso(Double.parseDouble(alterar.view.getTxtPeso().getText().trim()));
                cliente.setIAC(calculaiac.calculaIAC(alterar.view.getTxtAltura(),alterar.view.getTxtCintura(),alterar.view.getRadMasculino()));
                cliente.setIMC(calculaimc.CalculaIMC(alterar.view.getTxtAltura(),alterar.view.getTxtPeso(), alterar.view.getRadMasculino()));
                cliente.setCintura(Double.parseDouble(alterar.view.getTxtCintura().getText().trim()));
                cliente.setRCQ(alterar.ajustaRCQ());
                AlteraCliente alteracliente = new AlteraCliente();

                if (alteracliente.alteraCliente(cliente)) {
                    JOptionPane.showMessageDialog(alterar.view, "Dados alterados com sucesso!", "Confirmação", JOptionPane.INFORMATION_MESSAGE);
                    
                } else {
                    JOptionPane.showMessageDialog(alterar.view, "Erro ao alterar o cliente!", "Erro", JOptionPane.ERROR_MESSAGE);
                }
            }
        }
    }
    
   
    
    
}
    
    

